package com.fishingwithme.infrastructure.mapper;

import com.fishingwithme.domain.common.UserComment;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 评论Mapper接口
 */
public interface UserCommentMapper extends BaseMapper<UserComment> {

    /**
     * 分页查询目标内容的顶级评论（parent_id为null），并统计子评论数量
     */
    IPage<UserComment> selectTopLevelComments(IPage<UserComment> page,
                                              @Param("targetType") String targetType,
                                              @Param("targetId") Long targetId,Long userId);

    /**
     * 查询指定评论的子评论
     */
    List<UserComment> selectChildComments(@Param("parentId") Long parentId);

    Integer selectChildCommentsCnt(@Param("parentId") Long parentId);

    /**
     * 分页查询指定评论的子评论
     */
    IPage<UserComment> selectChildCommentsByPage(IPage<UserComment> page, @Param("parentId") Long parentId);

    /**
     * 分页查询用户发布的评论
     */
    IPage<UserComment> selectByUserId(IPage<UserComment> page, @Param("userId") Long userId);

    /**
     * 更新评论内容
     */
    int updateContent(@Param("id") Long id, @Param("userId") Long userId, @Param("content") String content);

    /**
     * 增加点赞数
     */
    int updateCommentLikeCnt(String targetType,@Param("id") Long id);

}